import { ReqCategorizeList, ReqSlideList, ReqFloorList } from "@/api/index";
//存储数据
const state = {
  category: [],
  slide: [],
  floor: [],
};

// 同步更新state数据,mutations 中的方法名必须大写
const mutations = {
  SAVE_CATEGORY_LIST(state, value) {
    state.category = value;
  },
  //保存更新 轮播图的数据
  SAVE_SLIDE_LIST(state, value) {
    state.slide = value;
  },
  //保存更新 floor 楼层 的数据
  SAVE_FLOOR_LIST(state, value) {
    state.floor = value;
  },
};

//异步方法，调用mutations 方法来同步更新state数据
const actions = {
  async asyncGetCategoryList({ commit }) {
    let data = await ReqCategorizeList();
    commit("SAVE_CATEGORY_LIST", data.slice(0, 15));
  },
  //请求获取首页 轮播图的数据
  async asyncGetSlideList({ commit }) {
    //请求获取后台数据
    let data = await ReqSlideList();
    //调用mutations方法，同步更新数据
    commit("SAVE_SLIDE_LIST", data);
  },
  //请求获取首页 floor 的数据
  async asyncGetFloorList({ commit }) {
    //请求获取后台数据
    let data = await ReqFloorList();
    //调用mutations方法，同步更新数据
    commit("SAVE_FLOOR_LIST", data);
  },
};

//类似于computed
const getters = {};

export default {
  namespaced: true,
  state,
  mutations,
  actions,
  getters,
};
